{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## 第4章-朴素贝叶斯法-后验概率最大化\n",
    "\n",
    "&emsp;&emsp;在朴素贝叶斯法这一章中，书中有一个结论：\n",
    "\n",
    "> 朴素贝叶斯法将实例分到后验概率最大的类中，这等价于期望风险最小化。\n",
    "\n",
    "### 推导\n",
    "&emsp;&emsp;首先已知损失函数$L(Y, f(X))=\\left\\{\\begin{array}{ll}{1,} & {Y \\neq f(X)} \\\\ {0,} & {Y = f(X)}\\end{array}\\right.$，这里的$f(X)$对应于预测值，$Y$对应于真实值，需要计算的是$f(x)=\\mathop{\\arg\\max}\\limits_{c_k} P(Y=c_k|X)$，本来$f(X)$是决策函数的形式，$P(Y=c_k|X)$是条件概率分布的形式，通过这样的一个等式，将两种形式联系在一起。在什么情况下，满足上式呢？当最小化期望风险时，能够满足。  \n",
    "期望风险为$E[L(Y,f(X))]$  \n",
    "$\\because Y$和$f(X)$都是离散的  \n",
    "$ \\begin{aligned} \\therefore E[L(Y,f(X))]\n",
    "&= \\sum_Y \\sum_X [L(Y,f(X))P(X,Y)] \\\\\n",
    "&= \\sum_Y \\sum_X [L(Y,f(X))P(X)P(Y|X)] \\\\\n",
    "&= \\sum_X \\left[[\\sum_Y L(Y,f(X))P(Y|X)]P(X)\\right]\n",
    "\\end{aligned}$  \n",
    "要最小化$E[L(Y,f(X))]$就需要最小化每一个$X$的$\\sum_Y L(Y,f(X))P(Y|X)$一项。  \n",
    "$\\therefore \\min E[L(Y,f(X))] \\Rightarrow \\min \\{\\sum_Y L(Y,f(X))P(Y|X)\\}$  \n",
    "$\\displaystyle \\therefore \\sum_{c_k} L(Y=c_k, f(x))P(Y=c_k|X)$  \n",
    "中间这项$L(Y=c_k, f(x))$是损失函数，只有当$f(x) \\neq c_k$时，取值为1  \n",
    "$\\begin{aligned} \\therefore \\min \\{\\sum_Y L(Y,f(X))P(Y|X)\\}\n",
    "&= \\min \\sum_{c_k}\\Big[ I(f(x) \\neq c_k)P(Y=c_k|X)\\Big] \\\\\n",
    "&= \\min \\sum_{c_k}\\Big[ [1 - I(f(x)=c_k)]P(Y=c_k|X)\\Big] \\\\\n",
    "&= \\min \\Big\\{\\sum_{c_k} P(Y=c_k|X) - \\sum_{c_k} \\Big[I(f(x)=c_k)P(Y=c_k|X)\\Big]\\Big\\}\n",
    "\\end{aligned}$  \n",
    "$\\displaystyle \\because \\sum_{c_k} P(Y=c_k|X) = 1$  \n",
    "$ \\begin{aligned} \\therefore \\min \\Big\\{\\sum_{c_k} P(Y=c_k|X) - \\sum_{c_k} \\Big[I(f(x)=c_k)P(Y=c_k|X)\\Big]\\Big\\}\n",
    "&= \\min \\Big\\{ 1 - \\sum_{c_k} \\Big[I(f(x)=c_k)P(Y=c_k|X)\\Big] \\Big\\}\\\\ \n",
    "&= \\max \\sum_{c_k} \\Big[I(f(x)=c_k)P(Y=c_k|X)\\Big]\n",
    "\\end{aligned}$ \n",
    "\n",
    "### 解释 \n",
    "&emsp;&emsp;对于每一个随机变量$X$，都有一个概率分布$Y$，$X \\in \\{c_1, c_2, \\cdots, c_K\\}, y \\in \\{p_1, p_2, \\cdots, p_K\\}$，对于$f(x)$而言，只能取其中的一个，假设$f(x)=c_1$时，那么输出$Y$的真实值只以概率$p_1$的可能性是$c_1$，只以概率$p_2$的可能性是$c_2$，...，只以概率$p_K$的可能性是$c_K$，当输出的真实值是$c_1$时，就预测正确，当出现其他类别时，预测错误。  \n",
    "&emsp;&emsp;所以当用$f(x)$预测$Y$时，$Y$以一定的概率判定为其中的一个类别$c_k$，对于$c_1,\\cdots,c_K$而言，只有其中的一个$k$使得$I(f(x)=c_k)=1$，因为$f(x)$只能取其中的一个值。  \n",
    "&emsp;&emsp;所以要取最大值，取其中的一项使得$I(f(x)=c_k)=1$，要使得其最大，找一个$c_k$使得$P(Y=c_k|X)$最大。  \n",
    "$\\therefore f(x)=\\mathop{\\arg \\max}\\limits_{c_k} P(Y=c_k|X)$  \n",
    "**后验概率最大化得证。** "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.2"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
